# Lista de consultas
query_juicios = [
    ("Control de la Seguridad", """
        select 
            REG.RGN_NOMBRE REGIONAL, 
            S.SED_NOMBRE CENTRO_FORMACION, 
            pf.prf_codigo ID_PROGRAMA,
            pf.prf_denominacion PROGRAMA,    
            fc.FIC_ID ID_FICHA,     
            pe.pre_nombre,
            asp.ASP_NOMBRE, 
            ASP.ASP_PRIMER_APELLIDO, 
            ASP.ASP_SEGUNDO_APELLIDO, 
            ASP.ASP_CORREO_E,
            ASP.TIPO_DOCUMENTO,
            rga.num_doc_identidad,    
            decode(rga.rga_estado,
                    1, 'Aplazado',
                    2, 'Cancelado', 
                    3, 'Certificado', 
                    4, 'Condicionado', 
                    5, 'Reprobado', 
                    6, 'Retiro Voluntario',  
                    7, 'Formacion', 
                    8, 'Induccion',  
                    9,  'No Apto', 
                    10, 'Reingresado',
                    11, 'Traslado', 
                    12, 'Por Certificar', 
                    13, 'En Transito', 
                    14, 'Cancelamiento Virtual Complementaria', 
                    15, 'Desercion Virtual Complementaria') ESTADO_APRENDIZ, 


            -- MAX(CASE WHEN ra.rea_id = 611101 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS ""611101""
        MAX(CASE WHEN ra.rea_id = 583546 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583546",
        MAX(CASE WHEN ra.rea_id = 583759 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583759",
        MAX(CASE WHEN ra.rea_id = 583702 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583702",
        MAX(CASE WHEN ra.rea_id = 583703 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583703",
        MAX(CASE WHEN ra.rea_id = 583704 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583704",
        MAX(CASE WHEN ra.rea_id = 583705 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583705",
        MAX(CASE WHEN ra.rea_id = 583706 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583706",
        MAX(CASE WHEN ra.rea_id = 583707 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583707",
        MAX(CASE WHEN ra.rea_id = 583708 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583708",
        MAX(CASE WHEN ra.rea_id = 583709 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583709",
        MAX(CASE WHEN ra.rea_id = 583710 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583710",
        MAX(CASE WHEN ra.rea_id = 583711 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583711",
        MAX(CASE WHEN ra.rea_id = 583712 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583712",
        MAX(CASE WHEN ra.rea_id = 583713 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583713",
        MAX(CASE WHEN ra.rea_id = 583714 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583714",
        MAX(CASE WHEN ra.rea_id = 583715 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583715",
        MAX(CASE WHEN ra.rea_id = 583716 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583716",
        MAX(CASE WHEN ra.rea_id = 583717 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583717",
        MAX(CASE WHEN ra.rea_id = 583718 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583718",
        MAX(CASE WHEN ra.rea_id = 583719 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583719",
        MAX(CASE WHEN ra.rea_id = 583720 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583720",
        MAX(CASE WHEN ra.rea_id = 583721 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583721",
        MAX(CASE WHEN ra.rea_id = 583722 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583722",
        MAX(CASE WHEN ra.rea_id = 583723 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583723",
        MAX(CASE WHEN ra.rea_id = 583724 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583724",
        MAX(CASE WHEN ra.rea_id = 583725 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583725",
        MAX(CASE WHEN ra.rea_id = 583726 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583726",
        MAX(CASE WHEN ra.rea_id = 583727 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583727",
        MAX(CASE WHEN ra.rea_id = 583728 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583728",
        MAX(CASE WHEN ra.rea_id = 583729 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583729",
        MAX(CASE WHEN ra.rea_id = 583730 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583730",
        MAX(CASE WHEN ra.rea_id = 583731 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583731",
        MAX(CASE WHEN ra.rea_id = 583740 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583740",
        MAX(CASE WHEN ra.rea_id = 583741 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583741",
        MAX(CASE WHEN ra.rea_id = 583742 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583742",
        MAX(CASE WHEN ra.rea_id = 583743 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583743",
        MAX(CASE WHEN ra.rea_id = 583744 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583744",
        MAX(CASE WHEN ra.rea_id = 583745 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583745",
        MAX(CASE WHEN ra.rea_id = 583746 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583746",
        MAX(CASE WHEN ra.rea_id = 583747 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583747",
        MAX(CASE WHEN ra.rea_id = 583748 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583748",
        MAX(CASE WHEN ra.rea_id = 583749 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583749",
        MAX(CASE WHEN ra.rea_id = 583750 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583750",
        MAX(CASE WHEN ra.rea_id = 583751 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583751",
        MAX(CASE WHEN ra.rea_id = 583752 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583752",
        MAX(CASE WHEN ra.rea_id = 583753 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583753",
        MAX(CASE WHEN ra.rea_id = 583754 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583754",
        MAX(CASE WHEN ra.rea_id = 583755 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583755",
        MAX(CASE WHEN ra.rea_id = 583756 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583756",
        MAX(CASE WHEN ra.rea_id = 583757 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583757",
        MAX(CASE WHEN ra.rea_id = 583758 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583758",
        MAX(CASE WHEN ra.rea_id = 583701 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583701"



        from 
            matricula.registro_academico rga 
            inner join INTEGRACION.ASPIRANTE_AV asp on rga.nis = asp.nis
            inner join ejecformacion.aprendizxdetalle_ruta adr on adr.rga_id = rga.RGA_ID
            inner join INTEGRACION.ASPIRANTE_AV asp on asp.nis = rga.NIS
            inner join PLANFORMACION.FICHA_CARACTERIZACION fc on fc.fic_id = rga.fic_id
            INNER join diseniocur.programa_formacion pf    on pf.prf_id = fc.prf_id
            inner join catalogo.sede s    on s.sed_id =fc.SED_ID
            inner join catalogo.regional reg    on reg.rgn_id = s.RGN_ID
            inner join diseniocur.resultado_aprendizaje ra on ra.rea_id = adr.rea_id
            left outer join planformacion.PREXFIC pxf on pxf.fic_id = fc.fic_id  
            left outer join planformacion.programa_especial pe on pe.pre_id = pxf.pre_id

        where
           trunc(fc.fic_fch_inicializacion) >= to_date('01/01/2024', 'dd/mm/yyyy')
            and trunc(fc.fic_fch_inicializacion) <= to_date('31/12/2025', 'dd/mm/yyyy')
            and pe.pre_id in ('2275')
            and fc.fic_estado in ('6','7','8','12')
            and pf.prf_codigo in ('233103')
            and pf.prf_tipo_programa in ('T')

        GROUP BY      
            REG.RGN_NOMBRE, S.SED_NOMBRE, pf.prf_codigo, pf.prf_denominacion, fc.FIC_ID, pe.pre_nombre, asp.ASP_NOMBRE, ASP.ASP_PRIMER_APELLIDO, ASP.ASP_SEGUNDO_APELLIDO, ASP.ASP_CORREO_E,    
            ASP.TIPO_DOCUMENTO, rga.num_doc_identidad, rga.rga_estado
    """),

    ("Implementacion y Mantenimiento", """
        select 
            REG.RGN_NOMBRE REGIONAL, 
            S.SED_NOMBRE CENTRO_FORMACION, 
            pf.prf_codigo ID_PROGRAMA,
            pf.prf_denominacion PROGRAMA,    
            fc.FIC_ID ID_FICHA,     
            pe.pre_nombre,
            asp.ASP_NOMBRE, 
            ASP.ASP_PRIMER_APELLIDO, 
            ASP.ASP_SEGUNDO_APELLIDO, 
            ASP.ASP_CORREO_E,
            ASP.TIPO_DOCUMENTO,
            rga.num_doc_identidad,    
            decode(rga.rga_estado,
                    1, 'Aplazado',
                    2, 'Cancelado', 
                    3, 'Certificado', 
                    4, 'Condicionado', 
                    5, 'Reprobado', 
                    6, 'Retiro Voluntario',  
                    7, 'Formacion', 
                    8, 'Induccion',  
                    9,  'No Apto', 
                    10, 'Reingresado',
                    11, 'Traslado', 
                    12, 'Por Certificar', 
                    13, 'En Transito', 
                    14, 'Cancelamiento Virtual Complementaria', 
                    15, 'Desercion Virtual Complementaria') ESTADO_APRENDIZ, 


            -- MAX(CASE WHEN ra.rea_id = 611101 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS ""611101""
            MAX(CASE WHEN ra.rea_id = 613523 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613523",
            MAX(CASE WHEN ra.rea_id = 631523 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "631523",
            MAX(CASE WHEN ra.rea_id = 620709 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620709",
            MAX(CASE WHEN ra.rea_id = 620710 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620710",
            MAX(CASE WHEN ra.rea_id = 620711 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620711",
            MAX(CASE WHEN ra.rea_id = 620712 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620712",
            MAX(CASE WHEN ra.rea_id = 620713 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620713",
            MAX(CASE WHEN ra.rea_id = 620714 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620714",
            MAX(CASE WHEN ra.rea_id = 620715 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620715",
            MAX(CASE WHEN ra.rea_id = 620716 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620716",
            MAX(CASE WHEN ra.rea_id = 620717 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620717",
            MAX(CASE WHEN ra.rea_id = 620718 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620718",
            MAX(CASE WHEN ra.rea_id = 620719 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620719",
            MAX(CASE WHEN ra.rea_id = 620720 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620720",
            MAX(CASE WHEN ra.rea_id = 620763 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620763",
            MAX(CASE WHEN ra.rea_id = 620764 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620764",
            MAX(CASE WHEN ra.rea_id = 620765 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620765",
            MAX(CASE WHEN ra.rea_id = 620766 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620766",
            MAX(CASE WHEN ra.rea_id = 620767 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620767",
            MAX(CASE WHEN ra.rea_id = 620768 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620768",
            MAX(CASE WHEN ra.rea_id = 620769 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620769",
            MAX(CASE WHEN ra.rea_id = 620770 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620770",
            MAX(CASE WHEN ra.rea_id = 620771 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620771",
            MAX(CASE WHEN ra.rea_id = 620772 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620772",
            MAX(CASE WHEN ra.rea_id = 620773 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620773",
            MAX(CASE WHEN ra.rea_id = 620774 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620774",
            MAX(CASE WHEN ra.rea_id = 620775 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620775",
            MAX(CASE WHEN ra.rea_id = 620776 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620776",
            MAX(CASE WHEN ra.rea_id = 620777 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620777",
            MAX(CASE WHEN ra.rea_id = 620778 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620778",
            MAX(CASE WHEN ra.rea_id = 620779 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620779",
            MAX(CASE WHEN ra.rea_id = 620780 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620780",
            MAX(CASE WHEN ra.rea_id = 620781 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620781",
            MAX(CASE WHEN ra.rea_id = 620782 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620782",
            MAX(CASE WHEN ra.rea_id = 620783 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620783",
            MAX(CASE WHEN ra.rea_id = 620784 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620784",
            MAX(CASE WHEN ra.rea_id = 620785 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620785",
            MAX(CASE WHEN ra.rea_id = 620786 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620786",
            MAX(CASE WHEN ra.rea_id = 620787 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620787",
            MAX(CASE WHEN ra.rea_id = 620788 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620788",
            MAX(CASE WHEN ra.rea_id = 620789 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620789",
            MAX(CASE WHEN ra.rea_id = 620805 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620805",
            MAX(CASE WHEN ra.rea_id = 620806 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620806",
            MAX(CASE WHEN ra.rea_id = 620807 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620807",
            MAX(CASE WHEN ra.rea_id = 620808 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620808",
            MAX(CASE WHEN ra.rea_id = 620809 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620809",
            MAX(CASE WHEN ra.rea_id = 620810 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620810",
            MAX(CASE WHEN ra.rea_id = 620811 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620811",
            MAX(CASE WHEN ra.rea_id = 620812 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620812",
            MAX(CASE WHEN ra.rea_id = 620963 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620963",
            MAX(CASE WHEN ra.rea_id = 620964 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620964",
            MAX(CASE WHEN ra.rea_id = 620965 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620965",
            MAX(CASE WHEN ra.rea_id = 620966 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620966",
            MAX(CASE WHEN ra.rea_id = 629169 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "629169",
            MAX(CASE WHEN ra.rea_id = 629170 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "629170",
            MAX(CASE WHEN ra.rea_id = 629171 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "629171",
            MAX(CASE WHEN ra.rea_id = 629172 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "629172",
            MAX(CASE WHEN ra.rea_id = 620708 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "620708"

        from 
            matricula.registro_academico rga 
            inner join INTEGRACION.ASPIRANTE_AV asp on rga.nis = asp.nis
            inner join ejecformacion.aprendizxdetalle_ruta adr on adr.rga_id = rga.RGA_ID
            inner join INTEGRACION.ASPIRANTE_AV asp on asp.nis = rga.NIS
            inner join PLANFORMACION.FICHA_CARACTERIZACION fc on fc.fic_id = rga.fic_id
            INNER join diseniocur.programa_formacion pf    on pf.prf_id = fc.prf_id
            inner join catalogo.sede s    on s.sed_id =fc.SED_ID
            inner join catalogo.regional reg    on reg.rgn_id = s.RGN_ID
            inner join diseniocur.resultado_aprendizaje ra on ra.rea_id = adr.rea_id
            left outer join planformacion.PREXFIC pxf on pxf.fic_id = fc.fic_id  
            left outer join planformacion.programa_especial pe on pe.pre_id = pxf.pre_id

        where
           trunc(fc.fic_fch_inicializacion) >= to_date('01/01/2024', 'dd/mm/yyyy')
            and trunc(fc.fic_fch_inicializacion) <= to_date('31/12/2025', 'dd/mm/yyyy')
            and pe.pre_id in ('2275')
            and fc.fic_estado in ('6','7','8','12')
            and pf.prf_codigo in ('224501')
            and pf.prf_tipo_programa in ('T')

        GROUP BY      
            REG.RGN_NOMBRE, S.SED_NOMBRE, pf.prf_codigo, pf.prf_denominacion, fc.FIC_ID, pe.pre_nombre, asp.ASP_NOMBRE, ASP.ASP_PRIMER_APELLIDO, ASP.ASP_SEGUNDO_APELLIDO, ASP.ASP_CORREO_E,    
            ASP.TIPO_DOCUMENTO, rga.num_doc_identidad, rga.rga_estado
    """),


    ("Integracion de contenidos", """
        select 
            REG.RGN_NOMBRE REGIONAL, 
            S.SED_NOMBRE CENTRO_FORMACION, 
            pf.prf_codigo ID_PROGRAMA,
            pf.prf_denominacion PROGRAMA,    
            fc.FIC_ID ID_FICHA,     
            pe.pre_nombre,
            asp.ASP_NOMBRE, 
            ASP.ASP_PRIMER_APELLIDO, 
            ASP.ASP_SEGUNDO_APELLIDO, 
            ASP.ASP_CORREO_E,
            ASP.TIPO_DOCUMENTO,
            rga.num_doc_identidad,    
            decode(rga.rga_estado,
                    1, 'Aplazado',
                    2, 'Cancelado', 
                    3, 'Certificado', 
                    4, 'Condicionado', 
                    5, 'Reprobado', 
                    6, 'Retiro Voluntario',  
                    7, 'Formacion', 
                    8, 'Induccion',  
                    9,  'No Apto', 
                    10, 'Reingresado',
                    11, 'Traslado', 
                    12, 'Por Certificar', 
                    13, 'En Transito', 
                    14, 'Cancelamiento Virtual Complementaria', 
                    15, 'Desercion Virtual Complementaria') ESTADO_APRENDIZ, 


            -- MAX(CASE WHEN ra.rea_id = 611101 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS ""611101""
            MAX(CASE WHEN ra.rea_id = 583824 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583824",
            MAX(CASE WHEN ra.rea_id = 584422 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584422",
            MAX(CASE WHEN ra.rea_id = 584306 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584306",
            MAX(CASE WHEN ra.rea_id = 584307 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584307",
            MAX(CASE WHEN ra.rea_id = 584308 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584308",
            MAX(CASE WHEN ra.rea_id = 584309 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584309",
            MAX(CASE WHEN ra.rea_id = 584310 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584310",
            MAX(CASE WHEN ra.rea_id = 584311 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584311",
            MAX(CASE WHEN ra.rea_id = 584312 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584312",
            MAX(CASE WHEN ra.rea_id = 584353 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584353",
            MAX(CASE WHEN ra.rea_id = 584354 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584354",
            MAX(CASE WHEN ra.rea_id = 584355 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584355",
            MAX(CASE WHEN ra.rea_id = 584356 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584356",
            MAX(CASE WHEN ra.rea_id = 584380 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584380",
            MAX(CASE WHEN ra.rea_id = 584381 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584381",
            MAX(CASE WHEN ra.rea_id = 584382 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584382",
            MAX(CASE WHEN ra.rea_id = 584383 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584383",
            MAX(CASE WHEN ra.rea_id = 584384 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584384",
            MAX(CASE WHEN ra.rea_id = 584389 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584389",
            MAX(CASE WHEN ra.rea_id = 584390 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584390",
            MAX(CASE WHEN ra.rea_id = 584391 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584391",
            MAX(CASE WHEN ra.rea_id = 584392 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584392",
            MAX(CASE WHEN ra.rea_id = 584393 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584393",
            MAX(CASE WHEN ra.rea_id = 584394 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584394",
            MAX(CASE WHEN ra.rea_id = 584395 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584395",
            MAX(CASE WHEN ra.rea_id = 584396 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584396",
            MAX(CASE WHEN ra.rea_id = 584397 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584397",
            MAX(CASE WHEN ra.rea_id = 584398 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584398",
            MAX(CASE WHEN ra.rea_id = 584399 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584399",
            MAX(CASE WHEN ra.rea_id = 584400 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584400",
            MAX(CASE WHEN ra.rea_id = 584401 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584401",
            MAX(CASE WHEN ra.rea_id = 584402 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584402",
            MAX(CASE WHEN ra.rea_id = 584403 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584403",
            MAX(CASE WHEN ra.rea_id = 584404 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584404",
            MAX(CASE WHEN ra.rea_id = 584405 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584405",
            MAX(CASE WHEN ra.rea_id = 584406 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584406",
            MAX(CASE WHEN ra.rea_id = 584407 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584407",
            MAX(CASE WHEN ra.rea_id = 584408 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584408",
            MAX(CASE WHEN ra.rea_id = 584409 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584409",
            MAX(CASE WHEN ra.rea_id = 584410 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584410",
            MAX(CASE WHEN ra.rea_id = 584411 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584411",
            MAX(CASE WHEN ra.rea_id = 584412 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584412",
            MAX(CASE WHEN ra.rea_id = 584413 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584413",
            MAX(CASE WHEN ra.rea_id = 584414 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584414",
            MAX(CASE WHEN ra.rea_id = 584415 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584415",
            MAX(CASE WHEN ra.rea_id = 584416 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584416",
            MAX(CASE WHEN ra.rea_id = 584417 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584417",
            MAX(CASE WHEN ra.rea_id = 584418 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584418",
            MAX(CASE WHEN ra.rea_id = 584419 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584419",
            MAX(CASE WHEN ra.rea_id = 584420 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584420",
            MAX(CASE WHEN ra.rea_id = 584421 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584421",
            MAX(CASE WHEN ra.rea_id = 584305 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584305"

        from 
            matricula.registro_academico rga 
            inner join INTEGRACION.ASPIRANTE_AV asp on rga.nis = asp.nis
            inner join ejecformacion.aprendizxdetalle_ruta adr on adr.rga_id = rga.RGA_ID
            inner join INTEGRACION.ASPIRANTE_AV asp on asp.nis = rga.NIS
            inner join PLANFORMACION.FICHA_CARACTERIZACION fc on fc.fic_id = rga.fic_id
            INNER join diseniocur.programa_formacion pf    on pf.prf_id = fc.prf_id
            inner join catalogo.sede s    on s.sed_id =fc.SED_ID
            inner join catalogo.regional reg    on reg.rgn_id = s.RGN_ID
            inner join diseniocur.resultado_aprendizaje ra on ra.rea_id = adr.rea_id
            left outer join planformacion.PREXFIC pxf on pxf.fic_id = fc.fic_id  
            left outer join planformacion.programa_especial pe on pe.pre_id = pxf.pre_id

        where
           trunc(fc.fic_fch_inicializacion) >= to_date('01/01/2024', 'dd/mm/yyyy')
            and trunc(fc.fic_fch_inicializacion) <= to_date('31/12/2025', 'dd/mm/yyyy')
            and pe.pre_id in ('2275')
            and fc.fic_estado in ('6','7','8','12')
            and pf.prf_codigo in ('524704')
            and pf.prf_tipo_programa in ('T')
        

        GROUP BY      
            REG.RGN_NOMBRE, S.SED_NOMBRE, pf.prf_codigo, pf.prf_denominacion, fc.FIC_ID, pe.pre_nombre, asp.ASP_NOMBRE, ASP.ASP_PRIMER_APELLIDO, ASP.ASP_SEGUNDO_APELLIDO, ASP.ASP_CORREO_E,    
            ASP.TIPO_DOCUMENTO, rga.num_doc_identidad, rga.rga_estado
    """),


    ("Mantenimiento de Equipos", """
        select 
            REG.RGN_NOMBRE REGIONAL, 
            S.SED_NOMBRE CENTRO_FORMACION, 
            pf.prf_codigo ID_PROGRAMA,
            pf.prf_denominacion PROGRAMA,    
            fc.FIC_ID ID_FICHA,     
            pe.pre_nombre,
            asp.ASP_NOMBRE, 
            ASP.ASP_PRIMER_APELLIDO, 
            ASP.ASP_SEGUNDO_APELLIDO, 
            ASP.ASP_CORREO_E,
            ASP.TIPO_DOCUMENTO,
            rga.num_doc_identidad,    
            decode(rga.rga_estado,
                    1, 'Aplazado',
                    2, 'Cancelado', 
                    3, 'Certificado', 
                    4, 'Condicionado', 
                    5, 'Reprobado', 
                    6, 'Retiro Voluntario',  
                    7, 'Formacion', 
                    8, 'Induccion',  
                    9,  'No Apto', 
                    10, 'Reingresado',
                    11, 'Traslado', 
                    12, 'Por Certificar', 
                    13, 'En Transito', 
                    14, 'Cancelamiento Virtual Complementaria', 
                    15, 'Desercion Virtual Complementaria') ESTADO_APRENDIZ, 


            -- MAX(CASE WHEN ra.rea_id = 611101 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS ""611101""
            MAX(CASE WHEN ra.rea_id = 613603 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613603",
            MAX(CASE WHEN ra.rea_id = 685728 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685728",
            MAX(CASE WHEN ra.rea_id = 613605 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613605",
            MAX(CASE WHEN ra.rea_id = 613606 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613606",
            MAX(CASE WHEN ra.rea_id = 613607 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613607",
            MAX(CASE WHEN ra.rea_id = 613608 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613608",
            MAX(CASE WHEN ra.rea_id = 613609 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613609",
            MAX(CASE WHEN ra.rea_id = 613610 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613610",
            MAX(CASE WHEN ra.rea_id = 613611 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613611",
            MAX(CASE WHEN ra.rea_id = 613612 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613612",
            MAX(CASE WHEN ra.rea_id = 613613 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613613",
            MAX(CASE WHEN ra.rea_id = 613614 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613614",
            MAX(CASE WHEN ra.rea_id = 613615 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613615",
            MAX(CASE WHEN ra.rea_id = 613616 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613616",
            MAX(CASE WHEN ra.rea_id = 613617 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613617",
            MAX(CASE WHEN ra.rea_id = 613618 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613618",
            MAX(CASE WHEN ra.rea_id = 613619 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613619",
            MAX(CASE WHEN ra.rea_id = 613620 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613620",
            MAX(CASE WHEN ra.rea_id = 613629 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613629",
            MAX(CASE WHEN ra.rea_id = 613630 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613630",
            MAX(CASE WHEN ra.rea_id = 613631 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613631",
            MAX(CASE WHEN ra.rea_id = 613632 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613632",
            MAX(CASE WHEN ra.rea_id = 613633 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613633",
            MAX(CASE WHEN ra.rea_id = 613634 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613634",
            MAX(CASE WHEN ra.rea_id = 613635 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613635",
            MAX(CASE WHEN ra.rea_id = 613636 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613636",
            MAX(CASE WHEN ra.rea_id = 613637 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613637",
            MAX(CASE WHEN ra.rea_id = 613638 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613638",
            MAX(CASE WHEN ra.rea_id = 613651 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613651",
            MAX(CASE WHEN ra.rea_id = 613652 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613652",
            MAX(CASE WHEN ra.rea_id = 613653 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613653",
            MAX(CASE WHEN ra.rea_id = 613654 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613654",
            MAX(CASE WHEN ra.rea_id = 685685 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685685",
            MAX(CASE WHEN ra.rea_id = 685686 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685686",
            MAX(CASE WHEN ra.rea_id = 685687 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685687",
            MAX(CASE WHEN ra.rea_id = 685688 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685688",
            MAX(CASE WHEN ra.rea_id = 685689 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685689",
            MAX(CASE WHEN ra.rea_id = 685690 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685690",
            MAX(CASE WHEN ra.rea_id = 685691 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685691",
            MAX(CASE WHEN ra.rea_id = 685692 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685692",
            MAX(CASE WHEN ra.rea_id = 685725 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685725",
            MAX(CASE WHEN ra.rea_id = 685726 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685726",
            MAX(CASE WHEN ra.rea_id = 685727 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685727",
            MAX(CASE WHEN ra.rea_id = 613604 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "613604"

        from 
            matricula.registro_academico rga 
            inner join INTEGRACION.ASPIRANTE_AV asp on rga.nis = asp.nis
            inner join ejecformacion.aprendizxdetalle_ruta adr on adr.rga_id = rga.RGA_ID
            inner join INTEGRACION.ASPIRANTE_AV asp on asp.nis = rga.NIS
            inner join PLANFORMACION.FICHA_CARACTERIZACION fc on fc.fic_id = rga.fic_id
            INNER join diseniocur.programa_formacion pf    on pf.prf_id = fc.prf_id
            inner join catalogo.sede s    on s.sed_id =fc.SED_ID
            inner join catalogo.regional reg    on reg.rgn_id = s.RGN_ID
            inner join diseniocur.resultado_aprendizaje ra on ra.rea_id = adr.rea_id
            left outer join planformacion.PREXFIC pxf on pxf.fic_id = fc.fic_id  
            left outer join planformacion.programa_especial pe on pe.pre_id = pxf.pre_id

        where
            trunc(fc.fic_fch_inicializacion) >= to_date('01/01/2024', 'dd/mm/yyyy')
            and trunc(fc.fic_fch_inicializacion) <= to_date('31/12/2025', 'dd/mm/yyyy')
            and pe.pre_id in ('2275')
            and fc.fic_estado in ('6','7','8','12')
            and pf.prf_codigo in ('233105')
            and pf.prf_tipo_programa in ('T')

        GROUP BY      
            REG.RGN_NOMBRE, S.SED_NOMBRE, pf.prf_codigo, pf.prf_denominacion, fc.FIC_ID, pe.pre_nombre, asp.ASP_NOMBRE, ASP.ASP_PRIMER_APELLIDO, ASP.ASP_SEGUNDO_APELLIDO, ASP.ASP_CORREO_E,    
            ASP.TIPO_DOCUMENTO, rga.num_doc_identidad, rga.rga_estado
    """),


    ("Programacion para moviles", """
        select 
            REG.RGN_NOMBRE REGIONAL, 
            S.SED_NOMBRE CENTRO_FORMACION, 
            pf.prf_codigo ID_PROGRAMA,
            pf.prf_denominacion PROGRAMA,    
            fc.FIC_ID ID_FICHA,     
            pe.pre_nombre,
            asp.ASP_NOMBRE, 
            ASP.ASP_PRIMER_APELLIDO, 
            ASP.ASP_SEGUNDO_APELLIDO, 
            ASP.ASP_CORREO_E,
            ASP.TIPO_DOCUMENTO,
            rga.num_doc_identidad,    
            decode(rga.rga_estado,
                    1, 'Aplazado',
                    2, 'Cancelado', 
                    3, 'Certificado', 
                    4, 'Condicionado', 
                    5, 'Reprobado', 
                    6, 'Retiro Voluntario',  
                    7, 'Formacion', 
                    8, 'Induccion',  
                    9,  'No Apto', 
                    10, 'Reingresado',
                    11, 'Traslado', 
                    12, 'Por Certificar', 
                    13, 'En Transito', 
                    14, 'Cancelamiento Virtual Complementaria', 
                    15, 'Desercion Virtual Complementaria') ESTADO_APRENDIZ, 

            -- MAX(CASE WHEN ra.rea_id = 611101 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS ""611101""
            MAX(CASE WHEN ra.rea_id = 630531 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630531",
            MAX(CASE WHEN ra.rea_id = 630761 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630761",
            MAX(CASE WHEN ra.rea_id = 630684 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630684",
            MAX(CASE WHEN ra.rea_id = 630685 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630685",
            MAX(CASE WHEN ra.rea_id = 630686 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630686",
            MAX(CASE WHEN ra.rea_id = 630687 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630687",
            MAX(CASE WHEN ra.rea_id = 630688 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630688",
            MAX(CASE WHEN ra.rea_id = 630689 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630689",
            MAX(CASE WHEN ra.rea_id = 630690 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630690",
            MAX(CASE WHEN ra.rea_id = 630691 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630691",
            MAX(CASE WHEN ra.rea_id = 630692 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630692",
            MAX(CASE WHEN ra.rea_id = 630693 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630693",
            MAX(CASE WHEN ra.rea_id = 630694 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630694",
            MAX(CASE WHEN ra.rea_id = 630695 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630695",
            MAX(CASE WHEN ra.rea_id = 630696 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630696",
            MAX(CASE WHEN ra.rea_id = 630697 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630697",
            MAX(CASE WHEN ra.rea_id = 630698 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630698",
            MAX(CASE WHEN ra.rea_id = 630699 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630699",
            MAX(CASE WHEN ra.rea_id = 630700 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630700",
            MAX(CASE WHEN ra.rea_id = 630701 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630701",
            MAX(CASE WHEN ra.rea_id = 630702 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630702",
            MAX(CASE WHEN ra.rea_id = 630703 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630703",
            MAX(CASE WHEN ra.rea_id = 630704 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630704",
            MAX(CASE WHEN ra.rea_id = 630705 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630705",
            MAX(CASE WHEN ra.rea_id = 630706 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630706",
            MAX(CASE WHEN ra.rea_id = 630723 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630723",
            MAX(CASE WHEN ra.rea_id = 630724 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630724",
            MAX(CASE WHEN ra.rea_id = 630725 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630725",
            MAX(CASE WHEN ra.rea_id = 630726 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630726",
            MAX(CASE WHEN ra.rea_id = 630727 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630727",
            MAX(CASE WHEN ra.rea_id = 630728 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630728",
            MAX(CASE WHEN ra.rea_id = 630729 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630729",
            MAX(CASE WHEN ra.rea_id = 630730 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630730",
            MAX(CASE WHEN ra.rea_id = 630731 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630731",
            MAX(CASE WHEN ra.rea_id = 630732 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630732",
            MAX(CASE WHEN ra.rea_id = 630733 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630733",
            MAX(CASE WHEN ra.rea_id = 630734 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630734",
            MAX(CASE WHEN ra.rea_id = 630735 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630735",
            MAX(CASE WHEN ra.rea_id = 630740 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630740",
            MAX(CASE WHEN ra.rea_id = 630741 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630741",
            MAX(CASE WHEN ra.rea_id = 630742 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630742",
            MAX(CASE WHEN ra.rea_id = 630743 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630743",
            MAX(CASE WHEN ra.rea_id = 630744 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630744",
            MAX(CASE WHEN ra.rea_id = 630745 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630745",
            MAX(CASE WHEN ra.rea_id = 630746 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630746",
            MAX(CASE WHEN ra.rea_id = 630747 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630747",
            MAX(CASE WHEN ra.rea_id = 630748 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630748",
            MAX(CASE WHEN ra.rea_id = 630749 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630749",
            MAX(CASE WHEN ra.rea_id = 630750 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630750",
            MAX(CASE WHEN ra.rea_id = 630751 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630751",
            MAX(CASE WHEN ra.rea_id = 630752 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630752",
            MAX(CASE WHEN ra.rea_id = 630753 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630753",
            MAX(CASE WHEN ra.rea_id = 630754 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630754",
            MAX(CASE WHEN ra.rea_id = 630755 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630755",
            MAX(CASE WHEN ra.rea_id = 630756 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630756",
            MAX(CASE WHEN ra.rea_id = 630757 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630757",
            MAX(CASE WHEN ra.rea_id = 630758 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630758",
            MAX(CASE WHEN ra.rea_id = 630759 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630759",
            MAX(CASE WHEN ra.rea_id = 630760 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630760",
            MAX(CASE WHEN ra.rea_id = 630683 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630683"

        from 
            matricula.registro_academico rga 
            inner join INTEGRACION.ASPIRANTE_AV asp on rga.nis = asp.nis
            inner join ejecformacion.aprendizxdetalle_ruta adr on adr.rga_id = rga.RGA_ID
            inner join INTEGRACION.ASPIRANTE_AV asp on asp.nis = rga.NIS
            inner join PLANFORMACION.FICHA_CARACTERIZACION fc on fc.fic_id = rga.fic_id
            INNER join diseniocur.programa_formacion pf    on pf.prf_id = fc.prf_id
            inner join catalogo.sede s    on s.sed_id =fc.SED_ID
            inner join catalogo.regional reg    on reg.rgn_id = s.RGN_ID
            inner join diseniocur.resultado_aprendizaje ra on ra.rea_id = adr.rea_id
            left outer join planformacion.PREXFIC pxf on pxf.fic_id = fc.fic_id  
            left outer join planformacion.programa_especial pe on pe.pre_id = pxf.pre_id

        where
            trunc(fc.fic_fch_inicializacion) >= to_date('01/01/2024', 'dd/mm/yyyy')
            and trunc(fc.fic_fch_inicializacion) <= to_date('31/12/2025', 'dd/mm/yyyy')
            and pe.pre_id in ('2275')
            and fc.fic_estado in ('6','7','8','12')
            and pf.prf_codigo in ('228123')
            and pf.prf_tipo_programa in ('T')

        GROUP BY      
            REG.RGN_NOMBRE, S.SED_NOMBRE, pf.prf_codigo, pf.prf_denominacion, fc.FIC_ID, pe.pre_nombre, asp.ASP_NOMBRE, ASP.ASP_PRIMER_APELLIDO, ASP.ASP_SEGUNDO_APELLIDO, ASP.ASP_CORREO_E,    
            ASP.TIPO_DOCUMENTO, rga.num_doc_identidad, rga.rga_estado
    """),


    ("Programacion para la nube", """
        select 
            REG.RGN_NOMBRE REGIONAL, 
            S.SED_NOMBRE CENTRO_FORMACION, 
            pf.prf_codigo ID_PROGRAMA,
            pf.prf_denominacion PROGRAMA,    
            fc.FIC_ID ID_FICHA,     
            pe.pre_nombre,
            asp.ASP_NOMBRE, 
            ASP.ASP_PRIMER_APELLIDO, 
            ASP.ASP_SEGUNDO_APELLIDO, 
            ASP.ASP_CORREO_E,
            ASP.TIPO_DOCUMENTO,
            rga.num_doc_identidad,    
            decode(rga.rga_estado,
                    1, 'Aplazado',
                    2, 'Cancelado', 
                    3, 'Certificado', 
                    4, 'Condicionado', 
                    5, 'Reprobado', 
                    6, 'Retiro Voluntario',  
                    7, 'Formacion', 
                    8, 'Induccion',  
                    9,  'No Apto', 
                    10, 'Reingresado',
                    11, 'Traslado', 
                    12, 'Por Certificar', 
                    13, 'En Transito', 
                    14, 'Cancelamiento Virtual Complementaria', 
                    15, 'Desercion Virtual Complementaria') ESTADO_APRENDIZ, 


            -- MAX(CASE WHEN ra.rea_id = 611101 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS ""611101""
        MAX(CASE WHEN ra.rea_id = 630443 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630443",
        MAX(CASE WHEN ra.rea_id = 630923 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630923",
        MAX(CASE WHEN ra.rea_id = 630487 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630487",
        MAX(CASE WHEN ra.rea_id = 630488 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630488",
        MAX(CASE WHEN ra.rea_id = 630489 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630489",
        MAX(CASE WHEN ra.rea_id = 630490 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630490",
        MAX(CASE WHEN ra.rea_id = 630491 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630491",
        MAX(CASE WHEN ra.rea_id = 630492 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630492",
        MAX(CASE WHEN ra.rea_id = 630523 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630523",
        MAX(CASE WHEN ra.rea_id = 630524 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630524",
        MAX(CASE WHEN ra.rea_id = 630525 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630525",
        MAX(CASE WHEN ra.rea_id = 630526 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630526",
        MAX(CASE WHEN ra.rea_id = 630527 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630527",
        MAX(CASE WHEN ra.rea_id = 630528 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630528",
        MAX(CASE WHEN ra.rea_id = 630529 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630529",
        MAX(CASE WHEN ra.rea_id = 630530 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630530",
        MAX(CASE WHEN ra.rea_id = 630762 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630762",
        MAX(CASE WHEN ra.rea_id = 630763 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630763",
        MAX(CASE WHEN ra.rea_id = 630764 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630764",
        MAX(CASE WHEN ra.rea_id = 630765 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630765",
        MAX(CASE WHEN ra.rea_id = 630803 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630803",
        MAX(CASE WHEN ra.rea_id = 630804 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630804",
        MAX(CASE WHEN ra.rea_id = 630805 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630805",
        MAX(CASE WHEN ra.rea_id = 630806 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630806",
        MAX(CASE WHEN ra.rea_id = 630807 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630807",
        MAX(CASE WHEN ra.rea_id = 630808 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630808",
        MAX(CASE WHEN ra.rea_id = 630809 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630809",
        MAX(CASE WHEN ra.rea_id = 630810 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630810",
        MAX(CASE WHEN ra.rea_id = 630811 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630811",
        MAX(CASE WHEN ra.rea_id = 630843 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630843",
        MAX(CASE WHEN ra.rea_id = 630844 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630844",
        MAX(CASE WHEN ra.rea_id = 630845 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630845",
        MAX(CASE WHEN ra.rea_id = 630846 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630846",
        MAX(CASE WHEN ra.rea_id = 630847 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630847",
        MAX(CASE WHEN ra.rea_id = 630848 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630848",
        MAX(CASE WHEN ra.rea_id = 630849 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630849",
        MAX(CASE WHEN ra.rea_id = 630859 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630859",
        MAX(CASE WHEN ra.rea_id = 630860 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630860",
        MAX(CASE WHEN ra.rea_id = 630861 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630861",
        MAX(CASE WHEN ra.rea_id = 630862 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630862",
        MAX(CASE WHEN ra.rea_id = 630863 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630863",
        MAX(CASE WHEN ra.rea_id = 630864 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630864",
        MAX(CASE WHEN ra.rea_id = 630865 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630865",
        MAX(CASE WHEN ra.rea_id = 630866 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630866",
        MAX(CASE WHEN ra.rea_id = 630867 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630867",
        MAX(CASE WHEN ra.rea_id = 630868 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630868",
        MAX(CASE WHEN ra.rea_id = 630869 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630869",
        MAX(CASE WHEN ra.rea_id = 630870 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630870",
        MAX(CASE WHEN ra.rea_id = 630910 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630910",
        MAX(CASE WHEN ra.rea_id = 630911 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630911",
        MAX(CASE WHEN ra.rea_id = 630912 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630912",
        MAX(CASE WHEN ra.rea_id = 630913 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630913",
        MAX(CASE WHEN ra.rea_id = 630914 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630914",
        MAX(CASE WHEN ra.rea_id = 630915 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630915",
        MAX(CASE WHEN ra.rea_id = 630916 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630916",
        MAX(CASE WHEN ra.rea_id = 630917 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630917",
        MAX(CASE WHEN ra.rea_id = 630918 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630918",
        MAX(CASE WHEN ra.rea_id = 630919 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630919",
        MAX(CASE WHEN ra.rea_id = 630920 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630920",
        MAX(CASE WHEN ra.rea_id = 630921 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630921",
        MAX(CASE WHEN ra.rea_id = 630922 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630922",
        MAX(CASE WHEN ra.rea_id = 630486 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "630486"

        from 
            matricula.registro_academico rga 
            inner join INTEGRACION.ASPIRANTE_AV asp on rga.nis = asp.nis
            inner join ejecformacion.aprendizxdetalle_ruta adr on adr.rga_id = rga.RGA_ID
            inner join INTEGRACION.ASPIRANTE_AV asp on asp.nis = rga.NIS
            inner join PLANFORMACION.FICHA_CARACTERIZACION fc on fc.fic_id = rga.fic_id
            INNER join diseniocur.programa_formacion pf    on pf.prf_id = fc.prf_id
            inner join catalogo.sede s    on s.sed_id =fc.SED_ID
            inner join catalogo.regional reg    on reg.rgn_id = s.RGN_ID
            inner join diseniocur.resultado_aprendizaje ra on ra.rea_id = adr.rea_id
            left outer join planformacion.PREXFIC pxf on pxf.fic_id = fc.fic_id  
            left outer join planformacion.programa_especial pe on pe.pre_id = pxf.pre_id

        where
            trunc(fc.fic_fch_inicializacion) >= to_date('01/01/2024', 'dd/mm/yyyy')
            and trunc(fc.fic_fch_inicializacion) <= to_date('31/12/2025', 'dd/mm/yyyy')
            and pe.pre_id in ('2275')
            and fc.fic_estado in ('6','7','8','12')
            and pf.prf_codigo in ('228122')
            and pf.prf_tipo_programa in ('T')

        GROUP BY      
            REG.RGN_NOMBRE, S.SED_NOMBRE, pf.prf_codigo, pf.prf_denominacion, fc.FIC_ID, pe.pre_nombre, asp.ASP_NOMBRE, ASP.ASP_PRIMER_APELLIDO, ASP.ASP_SEGUNDO_APELLIDO, ASP.ASP_CORREO_E,    
            ASP.TIPO_DOCUMENTO, rga.num_doc_identidad, rga.rga_estado
    """),


    ("Programacion de Software", """
        select 
            REG.RGN_NOMBRE REGIONAL, 
            S.SED_NOMBRE CENTRO_FORMACION, 
            pf.prf_codigo ID_PROGRAMA,
            pf.prf_denominacion PROGRAMA,    
            fc.FIC_ID ID_FICHA,     
            pe.pre_nombre,
            asp.ASP_NOMBRE, 
            ASP.ASP_PRIMER_APELLIDO, 
            ASP.ASP_SEGUNDO_APELLIDO, 
            ASP.ASP_CORREO_E,
            ASP.TIPO_DOCUMENTO,
            rga.num_doc_identidad,    
            decode(rga.rga_estado,
                    1, 'Aplazado',
                    2, 'Cancelado', 
                    3, 'Certificado', 
                    4, 'Condicionado', 
                    5, 'Reprobado', 
                    6, 'Retiro Voluntario',  
                    7, 'Formacion', 
                    8, 'Induccion',  
                    9,  'No Apto', 
                    10, 'Reingresado',
                    11, 'Traslado', 
                    12, 'Por Certificar', 
                    13, 'En Transito', 
                    14, 'Cancelamiento Virtual Complementaria', 
                    15, 'Desercion Virtual Complementaria') ESTADO_APRENDIZ, 

            -- MAX(CASE WHEN ra.rea_id = 611101 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS ""611101""
            MAX(CASE WHEN ra.rea_id = 611101 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611101",
            MAX(CASE WHEN ra.rea_id = 611102 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611102",
            MAX(CASE WHEN ra.rea_id = 611103 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611103",
            MAX(CASE WHEN ra.rea_id = 611104 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611104",
            MAX(CASE WHEN ra.rea_id = 611105 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611105",
            MAX(CASE WHEN ra.rea_id = 611106 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611106",
            MAX(CASE WHEN ra.rea_id = 611107 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611107",
            MAX(CASE WHEN ra.rea_id = 611108 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611108",
            MAX(CASE WHEN ra.rea_id = 611117 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611117",
            MAX(CASE WHEN ra.rea_id = 611165 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611165",
            MAX(CASE WHEN ra.rea_id = 611166 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611166",
            MAX(CASE WHEN ra.rea_id = 611167 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611167",
            MAX(CASE WHEN ra.rea_id = 611169 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611169",
            MAX(CASE WHEN ra.rea_id = 611179 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611179",
            MAX(CASE WHEN ra.rea_id = 611180 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611180",
            MAX(CASE WHEN ra.rea_id = 611181 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611181",
            MAX(CASE WHEN ra.rea_id = 611182 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611182",
            MAX(CASE WHEN ra.rea_id = 611187 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611187",
            MAX(CASE WHEN ra.rea_id = 611188 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611188",
            MAX(CASE WHEN ra.rea_id = 611189 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611189",
            MAX(CASE WHEN ra.rea_id = 611190 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611190",
            MAX(CASE WHEN ra.rea_id = 611191 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611191",
            MAX(CASE WHEN ra.rea_id = 611192 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611192",
            MAX(CASE WHEN ra.rea_id = 611193 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611193",
            MAX(CASE WHEN ra.rea_id = 611194 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611194",
            MAX(CASE WHEN ra.rea_id = 611195 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611195",
            MAX(CASE WHEN ra.rea_id = 611196 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611196",
            MAX(CASE WHEN ra.rea_id = 611197 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611197",
            MAX(CASE WHEN ra.rea_id = 611198 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611198",
            MAX(CASE WHEN ra.rea_id = 611199 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611199",
            MAX(CASE WHEN ra.rea_id = 611200 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611200",
            MAX(CASE WHEN ra.rea_id = 611201 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "611201",
            MAX(CASE WHEN ra.rea_id = 667723 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "667723",
            MAX(CASE WHEN ra.rea_id = 667724 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "667724",
            MAX(CASE WHEN ra.rea_id = 667725 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "667725",
            MAX(CASE WHEN ra.rea_id = 667726 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "667726",
            MAX(CASE WHEN ra.rea_id = 667763 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "667763",
            MAX(CASE WHEN ra.rea_id = 667764 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "667764",
            MAX(CASE WHEN ra.rea_id = 667765 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "667765",
            MAX(CASE WHEN ra.rea_id = 667766 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "667766",
            MAX(CASE WHEN ra.rea_id = 669123 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "669123",
            MAX(CASE WHEN ra.rea_id = 669124 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "669124",
            MAX(CASE WHEN ra.rea_id = 669163 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "669163",
            MAX(CASE WHEN ra.rea_id = 669164 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "669164",
            MAX(CASE WHEN ra.rea_id = 669167 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "669167",
            MAX(CASE WHEN ra.rea_id = 669168 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "669168",
            MAX(CASE WHEN ra.rea_id = 669169 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "669169"

        from 
            matricula.registro_academico rga 
            inner join INTEGRACION.ASPIRANTE_AV asp on rga.nis = asp.nis
            inner join ejecformacion.aprendizxdetalle_ruta adr on adr.rga_id = rga.RGA_ID
            inner join INTEGRACION.ASPIRANTE_AV asp on asp.nis = rga.NIS
            inner join PLANFORMACION.FICHA_CARACTERIZACION fc on fc.fic_id = rga.fic_id
            INNER join diseniocur.programa_formacion pf    on pf.prf_id = fc.prf_id
            inner join catalogo.sede s    on s.sed_id =fc.SED_ID
            inner join catalogo.regional reg    on reg.rgn_id = s.RGN_ID
            inner join diseniocur.resultado_aprendizaje ra on ra.rea_id = adr.rea_id
            left outer join planformacion.PREXFIC pxf on pxf.fic_id = fc.fic_id  
            left outer join planformacion.programa_especial pe on pe.pre_id = pxf.pre_id

        where
            trunc(fc.fic_fch_inicializacion) >= to_date('01/01/2024', 'dd/mm/yyyy')
            and trunc(fc.fic_fch_inicializacion) <= to_date('31/12/2025', 'dd/mm/yyyy')
            and pe.pre_id in ('2275')
            and fc.fic_estado in ('6','7','8','12')
            and pf.prf_codigo in ('233104')
            and pf.prf_tipo_programa in ('T')
        GROUP BY      
            REG.RGN_NOMBRE, S.SED_NOMBRE, pf.prf_codigo, pf.prf_denominacion, fc.FIC_ID, pe.pre_nombre, asp.ASP_NOMBRE, ASP.ASP_PRIMER_APELLIDO, ASP.ASP_SEGUNDO_APELLIDO, ASP.ASP_CORREO_E,    
            ASP.TIPO_DOCUMENTO, rga.num_doc_identidad, rga.rga_estado
    """),


    ("Programacion para Analitica", """
        select 
            REG.RGN_NOMBRE REGIONAL, 
            S.SED_NOMBRE CENTRO_FORMACION, 
            pf.prf_codigo ID_PROGRAMA,
            pf.prf_denominacion PROGRAMA,    
            fc.FIC_ID ID_FICHA,     
            pe.pre_nombre,
            asp.ASP_NOMBRE, 
            ASP.ASP_PRIMER_APELLIDO, 
            ASP.ASP_SEGUNDO_APELLIDO, 
            ASP.ASP_CORREO_E,
            ASP.TIPO_DOCUMENTO,
            rga.num_doc_identidad,    
            decode(rga.rga_estado,
                    1, 'Aplazado',
                    2, 'Cancelado', 
                    3, 'Certificado', 
                    4, 'Condicionado', 
                    5, 'Reprobado', 
                    6, 'Retiro Voluntario',  
                    7, 'Formacion', 
                    8, 'Induccion',  
                    9,  'No Apto', 
                    10, 'Reingresado',
                    11, 'Traslado', 
                    12, 'Por Certificar', 
                    13, 'En Transito', 
                    14, 'Cancelamiento Virtual Complementaria', 
                    15, 'Desercion Virtual Complementaria') ESTADO_APRENDIZ, 

            -- MAX(CASE WHEN ra.rea_id = 611101 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS ""611101""
        MAX(CASE WHEN ra.rea_id = 583700 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583700",
        MAX(CASE WHEN ra.rea_id = 584012 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584012",
        MAX(CASE WHEN ra.rea_id = 583853 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583853",
        MAX(CASE WHEN ra.rea_id = 583854 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583854",
        MAX(CASE WHEN ra.rea_id = 583855 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583855",
        MAX(CASE WHEN ra.rea_id = 583856 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583856",
        MAX(CASE WHEN ra.rea_id = 583900 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583900",
        MAX(CASE WHEN ra.rea_id = 583901 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583901",
        MAX(CASE WHEN ra.rea_id = 583902 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583902",
        MAX(CASE WHEN ra.rea_id = 583903 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583903",
        MAX(CASE WHEN ra.rea_id = 583971 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583971",
        MAX(CASE WHEN ra.rea_id = 583972 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583972",
        MAX(CASE WHEN ra.rea_id = 583973 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583973",
        MAX(CASE WHEN ra.rea_id = 583974 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583974",
        MAX(CASE WHEN ra.rea_id = 583975 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583975",
        MAX(CASE WHEN ra.rea_id = 583976 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583976",
        MAX(CASE WHEN ra.rea_id = 583977 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583977",
        MAX(CASE WHEN ra.rea_id = 583978 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583978",
        MAX(CASE WHEN ra.rea_id = 583979 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583979",
        MAX(CASE WHEN ra.rea_id = 583980 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583980",
        MAX(CASE WHEN ra.rea_id = 583981 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583981",
        MAX(CASE WHEN ra.rea_id = 583982 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583982",
        MAX(CASE WHEN ra.rea_id = 583983 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583983",
        MAX(CASE WHEN ra.rea_id = 583984 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583984",
        MAX(CASE WHEN ra.rea_id = 583985 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583985",
        MAX(CASE WHEN ra.rea_id = 583986 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583986",
        MAX(CASE WHEN ra.rea_id = 583987 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583987",
        MAX(CASE WHEN ra.rea_id = 583988 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583988",
        MAX(CASE WHEN ra.rea_id = 583989 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583989",
        MAX(CASE WHEN ra.rea_id = 583990 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583990",
        MAX(CASE WHEN ra.rea_id = 583991 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583991",
        MAX(CASE WHEN ra.rea_id = 583992 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583992",
        MAX(CASE WHEN ra.rea_id = 583993 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583993",
        MAX(CASE WHEN ra.rea_id = 583994 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583994",
        MAX(CASE WHEN ra.rea_id = 583995 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583995",
        MAX(CASE WHEN ra.rea_id = 583996 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583996",
        MAX(CASE WHEN ra.rea_id = 583997 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583997",
        MAX(CASE WHEN ra.rea_id = 583998 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583998",
        MAX(CASE WHEN ra.rea_id = 583999 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583999",
        MAX(CASE WHEN ra.rea_id = 584000 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584000",
        MAX(CASE WHEN ra.rea_id = 584001 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584001",
        MAX(CASE WHEN ra.rea_id = 584002 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584002",
        MAX(CASE WHEN ra.rea_id = 584003 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584003",
        MAX(CASE WHEN ra.rea_id = 584004 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584004",
        MAX(CASE WHEN ra.rea_id = 584005 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584005",
        MAX(CASE WHEN ra.rea_id = 584006 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584006",
        MAX(CASE WHEN ra.rea_id = 584007 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584007",
        MAX(CASE WHEN ra.rea_id = 584008 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584008",
        MAX(CASE WHEN ra.rea_id = 584009 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584009",
        MAX(CASE WHEN ra.rea_id = 584010 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584010",
        MAX(CASE WHEN ra.rea_id = 584011 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "584011",
        MAX(CASE WHEN ra.rea_id = 583852 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "583852"

        from 
            matricula.registro_academico rga 
            inner join INTEGRACION.ASPIRANTE_AV asp on rga.nis = asp.nis
            inner join ejecformacion.aprendizxdetalle_ruta adr on adr.rga_id = rga.RGA_ID
            inner join INTEGRACION.ASPIRANTE_AV asp on asp.nis = rga.NIS
            inner join PLANFORMACION.FICHA_CARACTERIZACION fc on fc.fic_id = rga.fic_id
            INNER join diseniocur.programa_formacion pf    on pf.prf_id = fc.prf_id
            inner join catalogo.sede s    on s.sed_id =fc.SED_ID
            inner join catalogo.regional reg    on reg.rgn_id = s.RGN_ID
            inner join diseniocur.resultado_aprendizaje ra on ra.rea_id = adr.rea_id
            left outer join planformacion.PREXFIC pxf on pxf.fic_id = fc.fic_id  
            left outer join planformacion.programa_especial pe on pe.pre_id = pxf.pre_id

        where
            trunc(fc.fic_fch_inicializacion) >= to_date('01/01/2024', 'dd/mm/yyyy')
            and trunc(fc.fic_fch_inicializacion) <= to_date('31/12/2025', 'dd/mm/yyyy')
            and pe.pre_id in ('2275')
            and fc.fic_estado in ('6','7','8','12')
            and pf.prf_codigo in ('228117')
            and pf.prf_tipo_programa in ('T')
     

        GROUP BY      
            REG.RGN_NOMBRE, S.SED_NOMBRE, pf.prf_codigo, pf.prf_denominacion, fc.FIC_ID, pe.pre_nombre, asp.ASP_NOMBRE, ASP.ASP_PRIMER_APELLIDO, ASP.ASP_SEGUNDO_APELLIDO, ASP.ASP_CORREO_E,    
            ASP.TIPO_DOCUMENTO, rga.num_doc_identidad, rga.rga_estado
    """),


    ("Sistemas Teleinformaticos", """
        select 
            REG.RGN_NOMBRE REGIONAL, 
            S.SED_NOMBRE CENTRO_FORMACION, 
            pf.prf_codigo ID_PROGRAMA,
            pf.prf_denominacion PROGRAMA,    
            fc.FIC_ID ID_FICHA,     
            pe.pre_nombre,
            asp.ASP_NOMBRE, 
            ASP.ASP_PRIMER_APELLIDO, 
            ASP.ASP_SEGUNDO_APELLIDO, 
            ASP.ASP_CORREO_E,
            ASP.TIPO_DOCUMENTO,
            rga.num_doc_identidad,    
            decode(rga.rga_estado,
                    1, 'Aplazado',
                    2, 'Cancelado', 
                    3, 'Certificado', 
                    4, 'Condicionado', 
                    5, 'Reprobado', 
                    6, 'Retiro Voluntario',  
                    7, 'Formacion', 
                    8, 'Induccion',  
                    9,  'No Apto', 
                    10, 'Reingresado',
                    11, 'Traslado', 
                    12, 'Por Certificar', 
                    13, 'En Transito', 
                    14, 'Cancelamiento Virtual Complementaria', 
                    15, 'Desercion Virtual Complementaria') ESTADO_APRENDIZ, 

            -- MAX(CASE WHEN ra.rea_id = 611101 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS ""611101""
            MAX(CASE WHEN ra.rea_id = 684565 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "684565",
            MAX(CASE WHEN ra.rea_id = 685424 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685424",
            MAX(CASE WHEN ra.rea_id = 685286 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685286",
            MAX(CASE WHEN ra.rea_id = 685287 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685287",
            MAX(CASE WHEN ra.rea_id = 685365 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685365",
            MAX(CASE WHEN ra.rea_id = 685366 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685366",
            MAX(CASE WHEN ra.rea_id = 685367 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685367",
            MAX(CASE WHEN ra.rea_id = 685368 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685368",
            MAX(CASE WHEN ra.rea_id = 685369 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685369",
            MAX(CASE WHEN ra.rea_id = 685370 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685370",
            MAX(CASE WHEN ra.rea_id = 685371 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685371",
            MAX(CASE WHEN ra.rea_id = 685372 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685372",
            MAX(CASE WHEN ra.rea_id = 685373 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685373",
            MAX(CASE WHEN ra.rea_id = 685374 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685374",
            MAX(CASE WHEN ra.rea_id = 685375 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685375",
            MAX(CASE WHEN ra.rea_id = 685376 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685376",
            MAX(CASE WHEN ra.rea_id = 685377 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685377",
            MAX(CASE WHEN ra.rea_id = 685378 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685378",
            MAX(CASE WHEN ra.rea_id = 685379 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685379",
            MAX(CASE WHEN ra.rea_id = 685380 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685380",
            MAX(CASE WHEN ra.rea_id = 685381 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685381",
            MAX(CASE WHEN ra.rea_id = 685382 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685382",
            MAX(CASE WHEN ra.rea_id = 685383 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685383",
            MAX(CASE WHEN ra.rea_id = 685405 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685405",
            MAX(CASE WHEN ra.rea_id = 685406 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685406",
            MAX(CASE WHEN ra.rea_id = 685407 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685407",
            MAX(CASE WHEN ra.rea_id = 685408 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685408",
            MAX(CASE WHEN ra.rea_id = 685409 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685409",
            MAX(CASE WHEN ra.rea_id = 685410 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685410",
            MAX(CASE WHEN ra.rea_id = 685411 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685411",
            MAX(CASE WHEN ra.rea_id = 685412 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685412",
            MAX(CASE WHEN ra.rea_id = 685413 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685413",
            MAX(CASE WHEN ra.rea_id = 685414 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685414",
            MAX(CASE WHEN ra.rea_id = 685415 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685415",
            MAX(CASE WHEN ra.rea_id = 685416 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685416",
            MAX(CASE WHEN ra.rea_id = 685417 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685417",
            MAX(CASE WHEN ra.rea_id = 685418 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685418",
            MAX(CASE WHEN ra.rea_id = 685419 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685419",
            MAX(CASE WHEN ra.rea_id = 685420 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685420",
            MAX(CASE WHEN ra.rea_id = 685421 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685421",
            MAX(CASE WHEN ra.rea_id = 685422 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685422",
            MAX(CASE WHEN ra.rea_id = 685423 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685423",
            MAX(CASE WHEN ra.rea_id = 685285 THEN DECODE(adr.adr_evaluacion_resultado, 'X', 'Por evaluar', 'A', 'Aprobado', 'D', 'No aprobado') END) AS  "685285"

        from 
            matricula.registro_academico rga 
            inner join INTEGRACION.ASPIRANTE_AV asp on rga.nis = asp.nis
            inner join ejecformacion.aprendizxdetalle_ruta adr on adr.rga_id = rga.RGA_ID
            inner join INTEGRACION.ASPIRANTE_AV asp on asp.nis = rga.NIS
            inner join PLANFORMACION.FICHA_CARACTERIZACION fc on fc.fic_id = rga.fic_id
            INNER join diseniocur.programa_formacion pf    on pf.prf_id = fc.prf_id
            inner join catalogo.sede s    on s.sed_id =fc.SED_ID
            inner join catalogo.regional reg    on reg.rgn_id = s.RGN_ID
            inner join diseniocur.resultado_aprendizaje ra on ra.rea_id = adr.rea_id
            left outer join planformacion.PREXFIC pxf on pxf.fic_id = fc.fic_id  
            left outer join planformacion.programa_especial pe on pe.pre_id = pxf.pre_id

        where
            trunc(fc.fic_fch_inicializacion) >= to_date('01/01/2024', 'dd/mm/yyyy')
            and trunc(fc.fic_fch_inicializacion) <= to_date('31/12/2025', 'dd/mm/yyyy')
            and pe.pre_id in ('2275')
            and fc.fic_estado in ('6','7','8','12')
            and pf.prf_tipo_programa in ('T')
            and pf.prf_codigo in ('233108')
    

        GROUP BY      
            REG.RGN_NOMBRE, S.SED_NOMBRE, pf.prf_codigo, pf.prf_denominacion, fc.FIC_ID, pe.pre_nombre, asp.ASP_NOMBRE, ASP.ASP_PRIMER_APELLIDO, ASP.ASP_SEGUNDO_APELLIDO, ASP.ASP_CORREO_E,    
            ASP.TIPO_DOCUMENTO, rga.num_doc_identidad, rga.rga_estado
    """),

]

query_aprendices_matriculados = """
SELECT  
        regional.rgn_id ID_REGIONAL,  
        regional.RGN_NOMBRE REGIONAL,
        sede.sed_id ID_CENTRO,
        sede.SED_NOMBRE NOMBRE_CENTRO, 
        ficha.fic_id FICHA, 
        to_char(ficha.fic_fch_inicializacion, 'dd/mm/yyyy') FECHA_INICIO, 
        to_char(ficha.fic_fch_finalizacion, 'dd/mm/yyyy')  FECHA_FIN,
            DECODE(ficha.FIC_ESTADO,
            '1', 'Creada',
            '2', 'Personalizada',
            '3', 'Revisada',
            '4', 'Publicada',
            '5', 'En seleccion',
            '6', 'En matricula',
            '7', 'En ejecucion',
            '8', 'Terminada',
            '9', 'Cancelada',
            '10', 'Programada',
            '11', 'En Inscripcion',
            '12', 'Terminada por fecha',
            '13', 'Terminada por unificacion',
            '14', 'Inactivo Virtual') ESTADO_FICHA,
        --decode(nvl(FiCoPr.Fic_Id, -1), -1, 'NO', 'SI') CORRECTAMENTE_PROGRAMADA, 
        programa.prf_codigo ID_PROGRAMA,
        programa.prf_version VERSION_PROGRAMA,
        programa.prf_denominacion NOMBRE_PROGRAMA, 
        CASE ficha.FIC_MOD_FORMACION WHEN 'P' THEN 'PRESENCIAL' WHEN 'V' THEN 'VIRTUAL' WHEN 'C' THEN 'COMBINADA' WHEN 'D' THEN 'DESESCOLARIZADA' WHEN 'A' THEN 'A DISTANCIA' END  MODALIDAD_FORMACION, 
        jor.jor_nombre JORNADA, 
        nf.nfs_id ID_NIVEL_FORMACION,
        nf.nfs_nombre NIVEL_FORMACION, 
        pe.pre_id ID_PROGRAMA_ESPECIAL,
        pe.pre_nombre PROGRAMA_ESPECIAL,
        con.cov_id ID_CONVENIO,
        con.cov_nombre CONVENIO,
        mpo.mpo_id ID_MUNICIPIO,
        mpo.mpo_nombre MUNICIPIO,
        its.its_nombre INSTITUCION,
        its.its_codigo CODIGO_DANE,
        --sede.sed_id  || ' - ' || sede.sed_nombre DATOS_CENTRO,
        ficha.MPO_ID ID_MUNICIPIO,
        municipio.mpo_nombre NOMBRE_MUNICIPIO,
        --usuario.nis INSTRUCTOR,
        aspirante.TIPO_DOCUMENTO, 
        aspirante.NUM_DOC_IDENTIDAD, 
        aspirante.ASP_NOMBRE NOMBRE_APRENDIZ, 
        aspirante.ASP_PRIMER_APELLIDO || ' ' || aspirante.ASP_SEGUNDO_APELLIDO APELLIDO_APRENDIZ,         
        aspirante.ASP_CORREO_E CORREO_PERSONAL, 
        CORREO_SOYSENA, 
                    decode(rga.rga_estado,
                    1, 'Aplazado',
                    2, 'Cancelado', 
                    3, 'Certificado',
                    4, 'Condicionado', 
                    5, 'Reprobado', 
                    6, 'Retiro Voluntario',  
                    7, 'Formacion',  
                    8, 'Induccion',
                    9,  'No Apto',  
                    10, 'Reingresado',
                    11, 'Traslado', 
                    12, 'Por Certificar',  
                    13, 'En Transito',
                    14, 'Cancelamiento Virtual Complementaria', 
                    15, 'Desercion Virtual Complementaria') ESTADO_REG_APRENDIZ,
        CASE usuario.dbu_genero WHEN 'M' THEN 'MASCULINO' WHEN 'F' THEN 'FEMENINO' WHEN 'N' THEN 'NO BINARIO' END  GENERO,
        to_char(usuario.DBU_FCH_NACIMIENTO, 'dd/mm/yyyy') FECHA_NACIMIENTO
        --count(rga.rga_id) MATRICULADOS


            FROM
        PLANFORMACION.FICHA_CARACTERIZACION         ficha
        INNER JOIN DISENIOCUR.PROGRAMA_FORMACION    programa    on  programa.PRF_ID = ficha.PRF_ID
        INNER JOIN CATALOGO.SEDE                    sede        on  sede.SED_ID = ficha.SED_ID
        INNER JOIN CATALOGO.REGIONAL                regional    on  regional.RGN_ID = sede.RGN_ID
        inner join CATALOGO.municipio               municipio   on  municipio.mpo_id = ficha.mpo_id
        inner join catalogo.nivel_formacion         nf          on  nf.nfs_id = programa.nfs_id_ofrecido
        left outer join MATRICULA.REGISTRO_ACADEMICO     rga         on  rga.FIC_ID = ficha.FIC_ID
        left outer join INTEGRACION.ASPIRANTE_AV         aspirante   on  aspirante.NIS = rga.NIS
        INNER JOIN catalogo.jornada                 jor         on  jor.jor_id = ficha.jor_id
        left outer join COMUN.DATOS_BASICOS_USUARIO      usuario     on  usuario.NIS = aspirante.NIS
        left outer join COMUN.CUENTASMISENA         misena      on  misena.NIS = aspirante.NIS
        left outer join planformacion.PREXFIC       pxf         on  pxf.fic_id = ficha.fic_id  
        left outer join planformacion.programa_especial   pe    on  pe.pre_id = pxf.pre_id  
        left outer JOIN PLANFORMACION.convenioxficha coxfi on coxfi.fic_id = ficha.fic_id
        left outer JOIN PLANFORMACION.convenio con on con.cov_id = coxfi.cov_id
        INNER JOIN catalogo.municipio mpo on mpo.mpo_id = ficha.mpo_id
        LEFT outer join planformacion.solicitudxinstitucion sxi on sxi.sos_id = ficha.sos_id
        LEFT outer join catalogo.institucion its on its.its_id = sxi.its_id
        LEFT outer join comun.CUENTASOYSENA soysena on soysena.nis = aspirante.NIS

     WHERE 
    TRUNC(ficha.fic_fch_inicializacion) >= to_date('01/01/2025', 'dd/mm/yyyy')
    AND TRUNC(ficha.fic_fch_inicializacion) <= to_date('31/12/2025', 'dd/mm/yyyy')
    AND ficha.fic_mod_formacion in ('V', 'P', 'A') 
    AND pe.pre_id = 2275
    and programa.prf_tipo_programa in ('T')
    AND ficha.FIC_ESTADO in ('6','7','8','12')

"""

query_instructores_2024 = """
SELECT  
    fc.rgn_id ID_REGIONAL,
    r.rgn_nombre REGIONAL,
    fc.sed_id ID_CENTRO,
    s.sed_nombre CENTRO, 
    fc.fic_id GRUPO, 
    DECODE(fc.FIC_ESTADO,
        '1', 'Creada',
        '2', 'Personalizada',
        '3', 'Revisada',
        '4', 'Publicada',
        '5', 'En seleccion',
        '6', 'En matricula',
        '7', 'En ejecucion',
        '8', 'Terminada',
        '9', 'Cancelada',
        '10', 'Programada',
        '11', 'En Inscripcion',
        '12', 'Terminada por fecha',
        '13', 'Terminada por unificacion',
        '14', 'Inactivo Virtual') ESTADO_GRUPO,
    NVL(persa.NUM_DOC_IDENTIDAD, '') DOCUMENTO_INSTRUCTOR,
    NVL(regexp_replace(trim(persa.ASP_NOMBRE || ' ' || persa.ASP_PRIMER_APELLIDO || ' ' || persa.ASP_SEGUNDO_APELLIDO), '[ ][ ]+', ' '), '') Nombre_Instructor,
    TO_CHAR(INF_FCH_ASIGNACION, 'dd/MM/yyyy HH:MI:SS AM') FECHA_HORA_ASIGNACION

FROM 
    planformacion.ficha_caracterizacion fc
    INNER JOIN catalogo.regional r ON r.rgn_id = fc.rgn_id
    INNER JOIN catalogo.sede s ON s.sed_id = fc.sed_id
    LEFT JOIN planformacion.PREXFIC pxf ON pxf.fic_id = fc.fic_id
    LEFT JOIN planformacion.programa_especial pe ON pe.pre_id = pxf.pre_id
    LEFT JOIN gesambiente.instructorxficha ipf ON ipf.FIC_ID = fc.FIC_ID 
    LEFT JOIN comun.funcionario fun ON fun.NIS = ipf.NIS_FUN_INSTRUCTOR 
    LEFT JOIN comun.aspirante_vw persa ON persa.NIS = fun.NIS


WHERE 
    trunc(fc.fic_fch_inicializacion) >= to_date('01/01/2024', 'dd/mm/yyyy')
    AND trunc(fc.fic_fch_inicializacion) <= to_date('31/12/2024', 'dd/mm/yyyy')
    AND pe.pre_id = 2275
    --and fc.fic_id = 3270192 
    AND fc.FIC_ESTADO IN ('6','7','8','12')
    and FUN.FUN_ESTADO in (1) --Estado contractual del funcionario 1: activo tiene contrato vigente.  0: inactivo, no tiene contrato vigente
    and FUN.FUN_INSTRUCTOR in (1) --Determina si el funcionario es un instructor. Valores de chequeo: 1 - Sm; 0 - No.
    and ipf.INF_ESTADO in ('V') --Estado de la asignacion de ficha al instructor: V Vigente (ficha esta vigente), N No vigente (la ficha no esta vigente), A Anulado ( ficha fue cambiada o retirada al instructor )
    
"""

query_instructores_2025 = """
SELECT  
    fc.rgn_id ID_REGIONAL,
    r.rgn_nombre REGIONAL,
    fc.sed_id ID_CENTRO,
    s.sed_nombre CENTRO, 
    fc.fic_id GRUPO, 
    DECODE(fc.FIC_ESTADO,
        '1', 'Creada',
        '2', 'Personalizada',
        '3', 'Revisada',
        '4', 'Publicada',
        '5', 'En seleccion',
        '6', 'En matricula',
        '7', 'En ejecucion',
        '8', 'Terminada',
        '9', 'Cancelada',
        '10', 'Programada',
        '11', 'En Inscripcion',
        '12', 'Terminada por fecha',
        '13', 'Terminada por unificacion',
        '14', 'Inactivo Virtual') ESTADO_GRUPO,
    NVL(persa.NUM_DOC_IDENTIDAD, '') DOCUMENTO_INSTRUCTOR,
    NVL(regexp_replace(trim(persa.ASP_NOMBRE || ' ' || persa.ASP_PRIMER_APELLIDO || ' ' || persa.ASP_SEGUNDO_APELLIDO), '[ ][ ]+', ' '), '') Nombre_Instructor,
    TO_CHAR(INF_FCH_ASIGNACION, 'dd/MM/yyyy HH:MI:SS AM') FECHA_HORA_ASIGNACION

FROM 
    planformacion.ficha_caracterizacion fc
    INNER JOIN catalogo.regional r ON r.rgn_id = fc.rgn_id
    INNER JOIN catalogo.sede s ON s.sed_id = fc.sed_id
    LEFT JOIN planformacion.PREXFIC pxf ON pxf.fic_id = fc.fic_id
    LEFT JOIN planformacion.programa_especial pe ON pe.pre_id = pxf.pre_id
    LEFT JOIN gesambiente.instructorxficha ipf ON ipf.FIC_ID = fc.FIC_ID 
    LEFT JOIN comun.funcionario fun ON fun.NIS = ipf.NIS_FUN_INSTRUCTOR 
    LEFT JOIN comun.aspirante_vw persa ON persa.NIS = fun.NIS


WHERE 
    trunc(fc.fic_fch_inicializacion) >= to_date('01/01/2025', 'dd/mm/yyyy')
    AND trunc(fc.fic_fch_inicializacion) <= to_date('31/12/2025', 'dd/mm/yyyy')
    AND pe.pre_id = 2275
    --and fc.fic_id = 3270192 
    AND fc.FIC_ESTADO IN ('6','7','8','12')
    and FUN.FUN_ESTADO in (1) --Estado contractual del funcionario 1: activo tiene contrato vigente.  0: inactivo, no tiene contrato vigente
    and FUN.FUN_INSTRUCTOR in (1) --Determina si el funcionario es un instructor. Valores de chequeo: 1 - Sm; 0 - No.
    and ipf.INF_ESTADO in ('V') --Estado de la asignacion de ficha al instructor: V Vigente (ficha esta vigente), N No vigente (la ficha no esta vigente), A Anulado ( ficha fue cambiada o retirada al instructor )
    
"""

query_ruta_grupos = """
SELECT DISTINCT
    fc.rgn_id ID_REGIONAL,
    r.rgn_nombre REGIONAL,
    fc.sed_id ID_CENTRO,
    s.sed_nombre CENTRO,
    --fc.sed_id  || ' - ' || s.sed_nombre DATOS_CENTRO,
    fc.fic_id GRUPO,
    to_char(fc.fic_fch_inicializacion,'dd/mm/yyyy') FECHA_INICIO,
    to_char(fc.fic_fch_finalizacion, 'dd/mm/yyyy') FECHA_FIN,
    decode(fc.FIC_ESTADO,
            '1','Creada',
            '2','Personalizada', 
            '3','Revisada',
            '4','Publicada', 
            '5','En Seleccisn',
            '6','En Matricula',
            '7','En Ejecucion', 
            '8','Terminada',
            '9','Cancelada',
            '10','Programada',
            '11','En Inscripcion', 
            '12','Terminada por fecha',
            '13','Terminada por Unificacisn',  
            '14','Inactivo Virtual') ESTADO_GRUPO,
    pf.prf_codigo || '-' || pf.prf_version ID_VERSION_PROGRAMA,
    pf.prf_denominacion PROGRAMA,
    rutaap.rta_id ID_RUTA,
    rutaap.rta_nombre NOMBRE_RUTA,
    CASE rutaap.rta_estado WHEN 1 THEN 'ACTIVA' WHEN 0 THEN 'EN CONSTRUCCION' WHEN 2 THEN 'INACTIVA' WHEN 3 THEN 'EN TRANSICION' WHEN 4 THEN 'CANCELADA' END  ESTADO_RUTA,
    --rutaap.RTA_FCH_REGISTRO,
    CASE fc.FIC_MOD_FORMACION WHEN 'P' THEN 'PRESENCIAL' WHEN 'V' THEN 'VIRTUAL' WHEN 'C' THEN 'COMBINADA' WHEN 'D' THEN 'DESESCOLARIZADA' WHEN 'A' THEN 'A DISTANCIA' END  MODALIDAD_FORMACION, 
    --jor.jor_nombre JORNADA, 
    --nf.nfs_nombre NIVEL_FORMACION,
    --CASE pf.prf_tipo_programa WHEN 'T' THEN 'TITULADA' WHEN 'C' THEN 'COMPLEMENTARIA' END  TIPO_PROGRAMA,
    pe.pre_id ID_PROGRAMA_ESPECIAL,
    pe.pre_nombre PROGRAMA_ESPECIAL
    --mpo.mpo_id ID_MUNICIPIO,
    --mpo.mpo_nombre MUNICIPIO,
    --count(ra.rga_id) MATRICULADOS
    
FROM 
    planformacion.ficha_caracterizacion fc
    INNER JOIN diseniocur.programa_formacion pf    on pf.prf_id = fc.prf_id
    INNER JOIN catalogo.nivel_formacion nf    on nf.nfs_id = pf.nfs_id_ofrecido
    INNER JOIN catalogo.regional r    on r.rgn_id = fc.rgn_id
    INNER JOIN catalogo.sede s    on s.sed_id = fc.sed_id
    LEFT OUTER JOIN (
        Select fdg.fic_id
        from reporte.fichas_datos_generales fdg
        where fdg.fuente = 1
        and fdg.hif_prog_ok = '1') FiCoPr    on FiCoPr.Fic_Id = fc.fic_id
    LEFT OUTER JOIN inscripcion.ingreso_aspirante ia    on ia.fic_id = fc.fic_id
    LEFT OUTER JOIN inscripcion.segunda_opcion seop    on seop.ing_id_segunda_opc = ia.ing_id
    LEFT OUTER JOIN matricula.registro_academico ra    on ra.ing_id = ia.ing_id
    LEFT OUTER JOIN planformacion.PREXFIC pxf on pxf.fic_id = fc.fic_id
    LEFT OUTER JOIN planformacion.programa_especial pe on pe.pre_id = pxf.pre_id
    INNER JOIN catalogo.municipio mpo on mpo.mpo_id = fc.mpo_id
    INNER JOIN catalogo.jornada jor on jor.jor_id = fc.jor_id
    left outer JOIN PLANFORMACION.convenioxficha coxfi on coxfi.fic_id = fc.fic_id
    left outer JOIN PLANFORMACION.convenio con on con.cov_id = coxfi.cov_id  
    LEFT outer join planformacion.solicitudxinstitucion sxi on sxi.sos_id = fc.sos_id
    LEFT outer join catalogo.institucion its on its.its_id = sxi.its_id
    inner join COMUN.DATOS_BASICOS_USUARIO      usr     on  usr.NIS = ra.NIS
    LEFT outer join DESARROLLOCUR.RUTA_APRENDIZAJE rutaap on rutaap.fic_id = fc.fic_id 
     
WHERE
    TRUNC(fc.fic_fch_inicializacion) >= to_date('01/01/2024', 'dd/mm/yyyy')
    AND TRUNC(fc.fic_fch_inicializacion) <= to_date('31/12/2025', 'dd/mm/yyyy')
    AND pe.pre_id = 2275
    AND pf.prf_tipo_programa = 'T'
    AND fc.fic_estado in ('6','7','8','12')
    
"""

query_programacion_grupos = """
With Res As
(
    Select  

        Base.nis,
        Base.Fuente,
        Base.fic_id,
        sum(Base.horas_academicas) horas_academicas
    
    from     
        (SELECT 
            to_number(to_char(hva.hva_hora_inicio, 'yyyymm')) AñoMes,
            ppi.nis_instructor nis,
            1 Fuente,
            fc.fic_id,
            ROUND(NVL(SUM((HVA.HVA_HORA_FIN - HVA.HVA_HORA_INICIO) * 24), 0), 2) horas_Academicas
            
    
        FROM 
            GESAMBIENTE.HORARIO_EVENTO_AMBIENTE HVA
            INNER JOIN GESAMBIENTE.EVENTO_AMBIENTE EVA ON EVA.EVA_ID = HVA.EVA_ID
            INNER JOIN GESAMBIENTE.PROGRAMACION_AMBIENTE PGA ON PGA.PGA_ID = EVA.PGA_ID
            INNER JOIN GESAMBIENTE.FICHAXAMBIENTE FIA ON FIA.FIA_ID = PGA.FIA_ID
            INNER JOIN GESAMBIENTE.FUNCIONARIOXHVA FAE ON FAE.HVA_ID = HVA.HVA_ID
            INNER JOIN GESAMBIENTE.PPFXINSTRUCTOR PPI ON PPI.PPI_ID = FAE.PPI_ID
            INNER JOIN PLANFORMACION.FICHA_CARACTERIZACION FC ON FC.FIC_ID = FIA.FIC_ID
            INNER JOIN CATALOGO.NIVEL_FORMACION NF ON NF.NFS_ID = FC.NFS_ID_OFRECIDO              
            INNER JOIN DISENIOCUR.PROGRAMA_FORMACION PGF ON PGF.PRF_ID = FC.PRF_ID
        
        WHERE 
            FAE.FAE_ESTADO IN (0, 1)
            AND HVA.HVA_ESTADO = '1'
            --AND HVA.HVA_HORA_INICIO >= to_date('01/04/2025', 'dd/mm/yyyy')
            --AND HVA.HVA_HORA_FIN <= SYSDATE

        group by 
            to_number(to_char(hva.hva_hora_inicio, 'yyyymm')), to_number(to_char(hva.hva_hora_inicio, 'yyyy')), to_number(to_char(hva.hva_hora_inicio, 'mm')), ppi.nis_instructor,fc.fic_id, hva.hva_hora_inicio, hva.hva_hora_fin
            ) Base  

    group by  nis, Fuente, fic_id
)   

Select 
    fc.rgn_id ID_REGIONAL,
    r.rgn_nombre REGIONAL,
    fc.sed_id ID_CENTRO,
    s.sed_nombre CENTRO,
    Res.Fic_id GRUPO,
    to_char(fc.fic_fch_inicializacion,'dd/mm/yyyy') FECHA_INICIO,
    to_char(fc.fic_fch_finalizacion, 'dd/mm/yyyy') FECHA_FIN,
    CASE WHEN pe.pre_nombre IS NULL OR pe.pre_nombre = '' THEN 'NINGUNO' ELSE pe.pre_nombre END AS PROGRAMA_ESPECIAL,
    sum(Res.horas_academicas) horas_academicas


from Res
    inner join planformacion.ficha_caracterizacion fc     on fc.fic_id = Res.Fic_id
    INNER JOIN diseniocur.programa_formacion pf    on pf.prf_id = fc.prf_id
    left outer join planformacion.prexfic prexfic     on fc.fic_id = prexfic.fic_id
    left join planformacion.programa_especial pe     on prexfic.pre_id = pe.pre_id
    left outer join catalogo.regional r     on r.rgn_id = fc.rgn_id
    left outer join catalogo.sede s     on s.sed_id = fc.sed_id
    inner join catalogo.jornada jor on jor.jor_id = fc.jor_id
  /* left join (
    select prf_id, count(distinct cpr_id) AS num_competencias
    from diseniocur.competenciaxprograma
    group by prf_id
) cxp on cxp.prf_id = fc.prf_id*/


where 
    TRUNC(fc.fic_fch_inicializacion) >= to_date('01/01/2024', 'dd/mm/yyyy')
    AND TRUNC(fc.fic_fch_inicializacion) <= to_date('31/12/2025', 'dd/mm/yyyy')
    AND pf.prf_tipo_programa = 'T'
    AND Res.Fuente = 1  
    AND pe.pre_id = 2275
    AND fc.FIC_ESTADO in('6','7','8','12')
    --and Res.Fic_id = 2918939


group by 
    fc.rgn_id, 
    r.rgn_nombre, 
    fc.sed_id, 
    s.sed_nombre, 
    Res.Fic_id, 
    fc.fic_fch_inicializacion,
    fc.fic_fch_finalizacion,
    FC.FIC_ESTADO, 
    jor.jor_nombre,
    pe.pre_nombre
    --cxp.num_competencias
    
"""

query_novedades_senatec = """
SELECT  
    fc.rgn_id COD_REGIONAL,
    r.rgn_nombre REGIONAL,
    fc.sed_id COD_CENTRO,
    s.sed_nombre CENTRO, 
    pe.pre_nombre PROGRAMA_ESPECIAL,
    aspirante.TIPO_DOCUMENTO TIPO_DOCUMENTO, 
    aspirante.NUM_DOC_IDENTIDAD NUM_DOCUMENTO, 
    aspirante.ASP_NOMBRE ||' '|| aspirante.ASP_PRIMER_APELLIDO ||' '|| aspirante.ASP_SEGUNDO_APELLIDO NOMBRE_APRENIZ, 
    CASE usuario.dbu_genero WHEN 'M' THEN 'MASCULINO' WHEN 'F' THEN 'FEMENINO' WHEN 'N' THEN 'NO BINARIO' END  GENERO,
    decode(ra.rga_estado,
        1, 'Aplazado',
        2, 'Cancelado', 
        3, 'Certificado',
        4, 'Condicionado', 
        5, 'Reprobado', 
        6, 'Retiro Voluntario',  
        7, 'Formacion',  
        8, 'Induccion',
        9,  'No Apto',  
        10, 'Reingresado',
        11, 'Traslado', 
        12, 'Por Certificar',  
        13, 'En Transito',
        14, 'Cancelamiento Virtual Complementaria', 
        15, 'Desercion Virtual Complementaria') ESTADO_APRENDIZ,
    na.nap_fch_registro               FECHA_REGISTRO_NOVEDAD,
    upper(decode(na.nap_estado, 1, 'Aceptada', 0, 'Inactivo', 2, 'Rechazada', 3, 'Sin Respuesta', 4, 'Tramitada'))ESTADO_NOVEDAD,
    na.nap_motivo                     "MOTIVO DE LA NOVEDAD",
    suno.sun_nombre                   "SUBTIPO DE NOVEDAD",
    aspirante.ASP_CORREO_E CORREO_ELECTRONICO,
    ubicacion.ubu_tel_principal TELEFONO,       
    fc.fic_id GRUPO, 
    to_char(fc.fic_fch_inicializacion, 'dd/mm/yyyy') FECHA_INICIO_GRUPO, 
    to_char(fc.fic_fch_finalizacion, 'dd/mm/yyyy')  FECHA_FIN_GRUPO,
    upper(DECODE(fc.FIC_ESTADO,
    '1', 'Creada',
    '2', 'Personalizada',
    '3', 'Revisada',
    '4', 'Publicada',
    '5', 'En seleccion',
    '6', 'En matricula',
    '7', 'En ejecucion',
    '8', 'Terminada',
    '9', 'Cancelada',
    '10', 'Programada',
    '11', 'En Inscripcion',
    '12', 'Terminada por fecha',
    '13', 'Terminada por unificacion',
    '14', 'Inactivo Virtual')) ESTADO_GRUPO,
    its.its_nombre INSTITUCION,
    its.its_codigo CODIGO_DANE

from
    planformacion.ficha_caracterizacion fc
    INNER join diseniocur.programa_formacion pf    on pf.prf_id = fc.prf_id
    inner join catalogo.nivel_formacion nf    on nf.nfs_id = pf.nfs_id_ofrecido
    inner join catalogo.regional r    on r.rgn_id = fc.rgn_id
    inner join catalogo.sede s    on s.sed_id = fc.sed_id
    INNER JOIN catalogo.jornada jor on jor.jor_id = fc.jor_id
    INNER JOIN catalogo.municipio mpo on mpo.mpo_id = fc.mpo_id
    left outer join ( Select fdg.fic_id 
                        from reporte.fichas_datos_generales fdg 
                        where fdg.fuente = 1 and fdg.hif_prog_ok = '1') FiCoPr    on FiCoPr.Fic_Id = fc.fic_id
    left outer join inscripcion.ingreso_aspirante ia    on ia.fic_id = fc.fic_id
    left outer join inscripcion.segunda_opcion seop    on seop.ing_id_segunda_opc = ia.ing_id
    left outer join matricula.registro_academico ra    on ra.ing_id = ia.ing_id
    inner join INTEGRACION.ASPIRANTE_AV         aspirante   on  aspirante.NIS = ra.NIS
    inner join COMUN.DATOS_BASICOS_USUARIO      usuario     on  usuario.NIS = aspirante.NIS
    left outer join COMUN.ubicacion_usuario     ubicacion   on  ubicacion.NIS = aspirante.NIS  
    left outer join comun.aspirante_vw pers    on pers.nis = fc.nis_fun_registro
    LEFT outer join planformacion.solicitudxinstitucion sxi on sxi.sos_id = fc.sos_id
    LEFT outer join catalogo.institucion its on its.its_id = sxi.its_id
    left outer join diseniocur.familias_programa fp    on fp.flp_id = pf.flp_id
    left outer join planformacion.PREXFIC pxf on pxf.fic_id = fc.fic_id
    left outer join planformacion.programa_especial pe on pe.pre_id = pxf.pre_id 
    LEFT JOIN ejecformacion.novedad_aprendiz      na ON na.rga_id = ra.rga_id
    LEFT JOIN ejecformacion.subtipo_novedad       suno ON suno.sun_id = na.sun_id
    LEFT JOIN ejecformacion.tipo_novedad          tino ON tino.tna_id = suno.tna_id 
        
where
     trunc(fc.fic_fch_inicializacion) >= to_date('01/01/2024', 'dd/mm/yyyy')
     and trunc(fc.fic_fch_inicializacion) <= to_date('31/12/2025', 'dd/mm/yyyy')
     and pe.pre_id IN ('2275')
     and pf.prf_tipo_programa in ('T')
     and fc.FIC_ESTADO in ('6','7','8','12')

"""